package gui;

import java.awt.Toolkit;
import javax.swing.JTextField;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.PlainDocument;

/**
 *
 * @author Mariano Zapata
 */
public class TextoPlanoLimitado extends PlainDocument {
    
    private int limite;
    private JTextField contadorCaracteres;
    
    public TextoPlanoLimitado(int limite, JTextField contadorCaracteres)
    {
        super();
        this.limite= limite;
        this.contadorCaracteres= contadorCaracteres;
    }
    
    @Override
    public void insertString(int offs, String str, AttributeSet a) throws BadLocationException {
        int tam= super.getLength() + str.length();
        if (tam <= limite)
        {
            super.insertString(offs, str, a);
            int actual= limite - tam;
            contadorCaracteres.setText(String.valueOf(actual));
        }
        else
        {
            int entran= limite - super.getLength();
            super.insertString(offs, str.substring(0, entran), a);
            contadorCaracteres.setText("0");
            Toolkit.getDefaultToolkit().beep();
        }
    }
    
    @Override
    public void remove(int offs, int len) throws BadLocationException {
        super.remove(offs, len);
        int actual= limite - super.getLength();
        contadorCaracteres.setText(String.valueOf(actual));
    }
}
